From b9b1318bea1af744fb9183e808ba00352ffed4d1 Mon Sep 17 00:00:00 2001 From: Liam Date: Sun, 19 Mar 2023 13:40:33 -0400 Subject: vulkan: fix more excessive waiting in scheduler --- src/video_core/renderer_vulkan/vk_scheduler.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp index c636a1625..55e699552 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.cpp +++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp @@ -65,12 +65,13 @@ void Scheduler::WaitWorker() { DispatchWork(); // Ensure the queue is drained. - std::unique_lock ql{queue_mutex}; - event_cv.wait(ql, [this] { return work_queue.empty(); }); + { + std::unique_lock ql{queue_mutex}; + event_cv.wait(ql, [this] { return work_queue.empty(); }); + } // Now wait for execution to finish. - // This needs to be done in the same order as WorkerThread. - std::unique_lock el{execution_mutex}; + std::scoped_lock el{execution_mutex}; } void Scheduler::DispatchWork() { -- cgit v1.2.3